package cn.iocoder.yudao.module.member.controller.admin.confmaterial.vo;

import cn.iocoder.yudao.module.member.controller.admin.confadditionalfee.vo.MemberConfAdditionalFeeRespVO;
import cn.iocoder.yudao.module.member.controller.admin.confpoint.vo.MemberConfPointRespVO;
import cn.iocoder.yudao.module.member.controller.admin.confrebate.vo.MemberConfRebateRespVO;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

@Schema(description = "管理后台 - 物料策略配置 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MemberConfMaterialRespVO {

    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "5154")
    @ExcelProperty("主键ID")
    private Long id;

    @Schema(description = "会员配置id", requiredMode = Schema.RequiredMode.REQUIRED, example = "19636")
    @ExcelProperty("会员配置id")
    private Long memberConfId;

    @Schema(description = "策略类型：实物料/锁价买料/锁价卖料/存料/提料", example = "1")
    @ExcelProperty("策略类型：实物料/锁价买料/锁价卖料/存料/提料")
    private Integer policyType;

    @Schema(description = "金属类型：黄金/铂金/钯金/白银/公斤条", example = "1")
    @ExcelProperty("金属类型：黄金/铂金/钯金/白银/公斤条")
    private Integer metalType;

    @Schema(description = "定金（元/克）")
    @ExcelProperty("定金（元/克）")
    private BigDecimal depositWeight;

    @Schema(description = "单笔限制（克）")
    @ExcelProperty("单笔限制（克）")
    private BigDecimal weightSingleLimit;

    @Schema(description = "累计限制（克）")
    @ExcelProperty("累计限制（克）")
    private BigDecimal weightTotalLimit;

    @Schema(description = "延期费（元/千克/天）")
    @ExcelProperty("延期费（元/千克/天）")
    private BigDecimal delayFee;

    @Schema(description = "工费（元/克）")
    @ExcelProperty("工费（元/克）")
    private BigDecimal processingFee;

    @Schema(description = "附加费（百分比）")
    @ExcelProperty("附加费（百分比）")
    private BigDecimal additionalFee;

    @Schema(description = "免息天数")
    @ExcelProperty("免息天数")
    private Integer interestFreeDays;

    @Schema(description = "最小下单间隔（秒）")
    @ExcelProperty("最小下单间隔（秒）")
    private Integer minOrderInterval;

    @Schema(description = "是否允许小额下单")
    @ExcelProperty("是否允许小额下单")
    private Boolean allowSmallOrder;

    @Schema(description = "审核即付定金比例（百分比）")
    @ExcelProperty("审核即付定金比例（百分比）")
    private BigDecimal auditDepositRatio;

    @Schema(description = "积分配置列表")
    private List<MemberConfPointRespVO> confPoints;

    @Schema(description = "返佣配置列表")
    private List<MemberConfRebateRespVO> confRebates;

    @Schema(description = "阶梯费用列表")
    private List<MemberConfAdditionalFeeRespVO> confAdditionalFees;

}